1. Field of Disclosure
Example embodiments are related to systems and methods for running mobile device hardware and software in the cloud and, in particular, to systems and methods in which a mobile device acts as an input/output interface for a user, and actual processing, storage and network interfaces are performed by a remote server.
2. Description of Related Art
Operating systems (OS's) and applications, i.e., software (SW), for mobile devices continue to develop to provide richer functionality and user interface experiences, and are thus becoming larger, more complex and more performance hungry. Mobile device hardware (HW) requirements for OS's and applications are becoming more demanding in terms of central processing unit (CPU) and graphic processing unit (GPU) capabilities, memory sizes and power dissipation. The current generation of mobile devices (e.g., smartphones, tablets and laptops) is based on high performance HW, namely a high speed multi-core CPU and GPU, a large run time memory (e.g., dynamic random-access memory (DRAM)) and a large storage size (e.g., Flash memory storage). As the HW requirements for executing or running OS's and applications become more demanding, HW costs for mobile devices increase. Moreover, changes in mobile device performance may lead users to frequently change their mobile device.
Another trend in mobile device technology is the frequent change in OS versions (e.g., Google's Android OS has versions 2.x, 3.x, 4.x . . . ) and the different types of OS's (e.g., Google's Android, Microsoft's Windows Mobile, Nokia's Symbian and Apple's iOS) on the market that require effectively different HW. When a new OS version is released, mobile device vendors cannot always upgrade each of the different mobile devices in their product line with the new OS version due to the large amount of time and effort needed to develop and test an upgrade path for each different device type. Mobile device manufacturers address different market segments by designing and manufacturing many mobile device variants, each with different HW capabilities and accompanying OS and applications tailored to the HW capabilities. This wide variety of devices often confuses customers and results in a large burden on the manufacturers for maintaining multiple SW versions.
FIG. 1 shows a conventional SW stack on a conventional mobile device. A conventional mobile device is a stand-alone entity in which the entire SW stack executes on the HW of the mobile device itself. A conventional SW Stack includes a HW abstraction layer (e.g., Kernel, drivers etc.) executing directly on the mobile device HW, an OS and applications executing on top of the OS. The performance of a conventional mobile device is related to the HW capabilities of the mobile device. A network provides voice calls and a data connection, for example, a data connection for web surfing, e-mails, application downloads etc., to a conventional mobile device.
U.S. Pub. No. 2011/0161404 discloses a server implemented method for communicating data between a server and a first device. The method, however, does not communicate different data in different streams or provide for multiple versions, types or instances of a mobile OS at the server.
U.S. Pat. No. 8,165,558 discloses a “trans” client which does not contain its own user interface (UI) and operating system (OS) has no capability to run user programs as a standalone apparatus. The trans client, however, is for operation with a smart cellular telephone as its server.
U.S. Pub. No. 2011/0252071 discloses a method for managing a virtual distributed filed system, but is unrelated to emulation of a mobile device OS at a server.
U.S. Pub. No. 2010/0146504 discloses a virtual mobile infrastructure (VMI) and its base platform. The host OS, however, requires a QEMU process and a VM switch to virtualize at least one guest cell phone operating system.